package com.ruoyi.wq.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.wq.mapper.WqUserQunMapper;
import com.ruoyi.wq.domain.WqUserQun;
import com.ruoyi.wq.service.IWqUserQunService;

/**
 * 我的群Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-08-23
 */
@Service
public class WqUserQunServiceImpl extends ServiceImpl<WqUserQunMapper, WqUserQun> implements IWqUserQunService {

    @Autowired
    private WqUserQunMapper wqUserQunMapper;

    /**
     * 查询我的群
     * 
     * @param id 我的群主键
     * @return 我的群
     */
    @Override
    public WqUserQun selectWqUserQunById(String id)
    {
        return wqUserQunMapper.selectWqUserQunById(id);
    }

    /**
     * 查询我的群列表
     * 
     * @param wqUserQun 我的群
     * @return 我的群
     */
    @Override
    public List<WqUserQun> selectWqUserQunList(WqUserQun wqUserQun)
    {
        return wqUserQunMapper.selectWqUserQunList(wqUserQun);
    }

    /**
     * 新增我的群
     * 
     * @param wqUserQun 我的群
     * @return 结果
     */
    @Override
    public int insertWqUserQun(WqUserQun wqUserQun)
    {
        wqUserQun.setCreateTime(DateUtils.getNowDate());
        return wqUserQunMapper.insertWqUserQun(wqUserQun);
    }

    /**
     * 修改我的群
     * 
     * @param wqUserQun 我的群
     * @return 结果
     */
    @Override
    public int updateWqUserQun(WqUserQun wqUserQun)
    {
        wqUserQun.setUpdateTime(DateUtils.getNowDate());
        return wqUserQunMapper.updateWqUserQun(wqUserQun);
    }

    /**
     * 批量删除我的群
     * 
     * @param ids 需要删除的我的群主键
     * @return 结果
     */
    @Override
    public int deleteWqUserQunByIds(String[] ids)
    {
        return wqUserQunMapper.deleteWqUserQunByIds(ids);
    }

    /**
     * 删除我的群信息
     * 
     * @param id 我的群主键
     * @return 结果
     */
    @Override
    public int deleteWqUserQunById(String id)
    {
        return wqUserQunMapper.deleteWqUserQunById(id);
    }

	@Override
	public List<WqUserQun> getQunUserListByQunId(String qunId) {
		QueryWrapper<WqUserQun> queryWrapper = new QueryWrapper<>();
		WqUserQun entity = new WqUserQun();
		entity.setQunId(qunId);
		entity.setStatus("1");
		queryWrapper.setEntity(entity);
		return baseMapper.selectList(queryWrapper);
	}

	@Override
	public WqUserQun getIsPay(String qunId, Long userId) {
		if(userId == null){
			return null;
		}
		QueryWrapper<WqUserQun> queryWrapper = new QueryWrapper<>();
		WqUserQun entity = new WqUserQun();
		entity.setQunId(qunId);
		entity.setUserId(userId);
		queryWrapper.setEntity(entity);
		return baseMapper.selectOne(queryWrapper);
	}

	@Override
	public Integer getPayNumByQunId(String qunId, String status) {
		QueryWrapper<WqUserQun> queryWrapper = new QueryWrapper<>();
		WqUserQun entity = new WqUserQun();
		entity.setQunId(qunId);
		entity.setStatus(status);
		queryWrapper.setEntity(entity);
		return baseMapper.selectCount(queryWrapper);
	}

	@Override
	public List<WqUserQun> getUserQunListBySex(String qunId, String sex) {
		WqUserQun entity = new WqUserQun();
		entity.setQunId(qunId);
		if("0".equals(sex)){
			entity.setSex("1");
		}else{
			entity.setSex("0");
		}
		entity.setStatus("0");
		return baseMapper.getUserQunListBySex(entity);
	}

	@Override
	public void deleteWqUserQunByUserId(String qunId, Long userId) {
		QueryWrapper<WqUserQun> queryWrapper = new QueryWrapper<>();
		WqUserQun entity = new WqUserQun();
		entity.setQunId(qunId);
		entity.setUserId(userId);
		queryWrapper.setEntity(entity);
		WqUserQun uq = baseMapper.selectOne(queryWrapper);
		if("0".equals(uq.getSex())){
			// 只删除男生
			uq.setStatus("1");
			baseMapper.updateById(uq);
		}
	}
}
